#include "Blocks/BlockConstans.h"

namespace PocketSurvival::BlockConstans
{
    // 方块的默认碰撞框
    std::vector<BoundingBox> defaultCollisionBoxes = 
    {
        BoundingBox(FastVector3::Zero, FastVector3::One)
    };

    // 附着的告示牌
    std::vector<BoundingBox> attachedSignCollisionBoxes[4] = 
    {
        {
            BoundingBox(Vector3(0,0.25,0),Vector3(1,0.6875,0.0625))
        },
        {
            BoundingBox(Vector3(-2.235174E-08,0.25,0),Vector3(0.06250002,0.6875,1))
        },
        {
            BoundingBox(Vector3(5.960464E-08,0.25,0.9374999),Vector3(1,0.6875,1))
        },
        {
            BoundingBox(Vector3(0.9375,0.25,0),Vector3(1,0.6875,1))
        }
    };

    // 南瓜
    std::vector<BoundingBox> pumpkinCollisionBoxes[8] = {
        {
            BoundingBox(Vector3(0.09999999,0,0.09999999),Vector3(0.9,0.4,0.9))
        },
        {
            BoundingBox(Vector3(0.1942857,0,0.1942857),Vector3(0.9942857,0.4,0.9942857))
        },
        {
            BoundingBox(Vector3(0.2285714,0,0.2285714),Vector3(1.028571,0.4,1.028571))
        },
        {
            BoundingBox(Vector3(0.2628572,0,0.2628572),Vector3(1.062857,0.4,1.062857))
        },
        {
            BoundingBox(Vector3(0.2971428,0,0.2971428),Vector3(1.097143,0.4,1.097143))
        },
        {
            BoundingBox(Vector3(0.26,0,0.26),Vector3(1.06,0.4,1.06))
        },
        {
            BoundingBox(Vector3(0.18,0,0.18),Vector3(0.98,0.4,0.98))
        },
        {
            BoundingBox(Vector3(0.09999996,0,0.09999996),Vector3(0.9,0.4,0.9))
        }
    };

    // 电池碰撞框
    std::vector<BoundingBox> batteryCollisionBoxes = 
    {
        BoundingBox(Vector3(0.125,0,0.125),Vector3(0.875,1,0.875)) 
    };

    // 按钮方块碰撞框
    std::vector<BoundingBox> buttonCollisionBoxes[6] = 
    {
        {
            BoundingBox(Vector3(0.3025,0.3025,-8.632999E-09),Vector3(0.6975,0.6975,0.09375))
        },
        {
            BoundingBox(Vector3(-1.7266E-08,0.3025,0.3025),Vector3(0.09375001,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025001,0.3025,0.90625),Vector3(0.6975001,0.6975,1))
        },
        {
            BoundingBox(Vector3(0.90625,0.3025,0.3025),Vector3(1,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0,0.3025),Vector3(0.6975,0.09375,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0.90625,0.3025),Vector3(0.6975,1,0.6975))
        }
    };

    // 十字坟碑碰撞框
    std::vector<BoundingBox> cairnCollisionBoxes = 
    {
        BoundingBox(Vector3(0.03966641,0.0005886899,0.05390751),Vector3(0.9886583,0.6173798,0.9405984))
    };

    // 篝火
    std::vector<BoundingBox> campfireCollisionBoxes[16] = 
    {
        {
            BoundingBox(Vector3(0,0.002731621,0),Vector3(1,0.1592423,1))
        },
        {
            BoundingBox(Vector3(0,-0.01864088,0),Vector3(1,0.3945025,1))
        },
        {
            BoundingBox(Vector3(0,-0.02050497,0),Vector3(1,0.4339527,1))
        },
        {
            BoundingBox(Vector3(0,-0.02236905,0),Vector3(1,0.4734029,1))
        },
        {
            BoundingBox(Vector3(0,-0.02423314,0),Vector3(1,0.5128532,1))
        },
        {
            BoundingBox(Vector3(0,-0.02609723,0),Vector3(1,0.5523035,1))
        },
        {
            BoundingBox(Vector3(0,-0.02796131,0),Vector3(1,0.5917537,1))
        },
        {
            BoundingBox(Vector3(0,-0.02982539,0),Vector3(1,0.6312039,1))
        },
        {
            BoundingBox(Vector3(0,-0.03168949,0),Vector3(1,0.6706542,1))
        },
        {
            BoundingBox(Vector3(0,-0.03355359,0),Vector3(1,0.7101044,1))
        },
        {
            BoundingBox(Vector3(0,-0.03541767,0),Vector3(1,0.7495546,1))
        },
        {
            BoundingBox(Vector3(0,-0.03728175,0),Vector3(1,0.789005,1))
        },
        {
            BoundingBox(Vector3(0,-0.03914584,0),Vector3(1,0.8284552,1))
        },
        {
            BoundingBox(Vector3(0,-0.04100993,0),Vector3(1,0.8679054,1))
        },
        {
            BoundingBox(Vector3(0,-0.04287401,0),Vector3(1,0.9073556,1))
        },
        {
            BoundingBox(Vector3(0,-0.0447381,0),Vector3(1,0.9468059,1))
        }
    };

    // 地毯
    std::vector<BoundingBox> carpetCollisionBoxes = 
    {
        BoundingBox(FastVector3::Zero,Vector3(1.0,0.0625,1.0))
    };

    // 电子雷管
    std::vector<BoundingBox> detonatorCollisionBoxes[6] =
    {
        {
            BoundingBox(Vector3(0.375,0.375,-5.463924E-09),Vector3(0.625,0.625,0.125))
        },
        {
            BoundingBox(Vector3(-1.092785E-08,0.375,0.375),Vector3(0.125,0.625,0.625))
        },
        {
            BoundingBox(Vector3(0.3750001,0.375,0.875),Vector3(0.6250001,0.625,1))
        },
        {
            BoundingBox(Vector3(0.875,0.375,0.375),Vector3(1,0.625,0.625))
        },
        {
            BoundingBox(Vector3(0.375,0,0.375),Vector3(0.625,0.125,0.625))
        },
        {
            BoundingBox(Vector3(0.375,0.875,0.375),Vector3(0.625,1,0.625))
        }
    };

    // 木门
    std::vector<BoundingBox> woodenDoorCollisionBoxes[16] = 
    {
        {
            BoundingBox(Vector3(0,0,0.875),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0.875,0,-2.980232E-08),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(-2.980232E-08,0,-4.470348E-08),Vector3(1,1,0.125))
        },
        {
            BoundingBox(Vector3(-7.450581E-09,0,0),Vector3(0.125,1,1))
        },
        {
            BoundingBox(Vector3(0.875,0,0),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(-2.980232E-08,0,-2.980232E-08),Vector3(1,1,0.125))
        },
        {
            BoundingBox(Vector3(-5.215406E-08,0,0),Vector3(0.125,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0.875),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0.875),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0.875,0,-2.980232E-08),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(-2.980232E-08,0,-4.470348E-08),Vector3(1,1,0.125))
        },
        {
            BoundingBox(Vector3(-7.450581E-09,0,0),Vector3(0.125,1,1))
        },
        {
            BoundingBox(Vector3(-5.215406E-08,0,0),Vector3(0.125,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0.8749999),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0.8749999,0,-2.980232E-08),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0,-5.960464E-08),Vector3(1,1,0.125))
        }
    };

    // 铁门
    std::vector<BoundingBox> ironDoorCollisionBoxes[16] = 
    {
        {
            BoundingBox(Vector3(0,0,0.875),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0.875,0,-2.980232E-08),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(-2.980232E-08,0,-4.470348E-08),Vector3(1,1,0.125))
        },
        {
            BoundingBox(Vector3(-7.450581E-09,0,0),Vector3(0.125,1,1))
        },
        {
            BoundingBox(Vector3(0.875,0,0),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(-2.980232E-08,0,-2.980232E-08),Vector3(1,1,0.125))
        },
        {
            BoundingBox(Vector3(-5.215406E-08,0,0),Vector3(0.125,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0.875),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0.875),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0.875,0,-2.980232E-08),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(-2.980232E-08,0,-4.470348E-08),Vector3(1,1,0.125))
        },
        {
            BoundingBox(Vector3(-7.450581E-09,0,0),Vector3(0.125,1,1))
        },
        {
            BoundingBox(Vector3(-5.215406E-08,0,0),Vector3(0.125,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0.8749999),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0.8749999,0,-2.980232E-08),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0,-5.960464E-08),Vector3(1,1,0.125))
        }
    };

    // 栅栏门
    std::vector<BoundingBox> cellDoorCollisionBoxes[16] =
    {
        {
            BoundingBox(Vector3(0,0,0.875),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0.875,0,-2.980232E-08),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(-2.980232E-08,0,-4.470348E-08),Vector3(1,1,0.125))
        },
        {
            BoundingBox(Vector3(-7.450581E-09,0,0),Vector3(0.125,1,1))
        },
        {
            BoundingBox(Vector3(0.875,0,0),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(-2.980232E-08,0,-2.980232E-08),Vector3(1,1,0.125))
        },
        {
            BoundingBox(Vector3(-5.215406E-08,0,0),Vector3(0.125,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0.875),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0.875),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0.875,0,-2.980232E-08),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(-2.980232E-08,0,-4.470348E-08),Vector3(1,1,0.125))
        },
        {
            BoundingBox(Vector3(-7.450581E-09,0,0),Vector3(0.125,1,1))
        },
        {
            BoundingBox(Vector3(-5.215406E-08,0,0),Vector3(0.125,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0.8749999),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0.8749999,0,-2.980232E-08),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0,-5.960464E-08),Vector3(1,1,0.125))
        }
    };

    // 木围墙
    std::vector<BoundingBox> woodenFenceCollisionBoxes[16] = 
    {
        {
            BoundingBox(Vector3(0.3375,0,0.3375),Vector3(0.6625,1,0.6625))
        },
        {
            BoundingBox(Vector3(0.3375,0,0.3375),Vector3(0.6625,1,0.6625)),
            BoundingBox(Vector3(0.5625,0.3155765,0.46875),Vector3(1,0.8155764,0.53125))
        },
        {
            BoundingBox(Vector3(0.3375,0,0.3375),Vector3(0.6625,1,0.6625)),
            BoundingBox(Vector3(0,0.3155765,0.46875),Vector3(0.4375,0.8155764,0.5312501))
        },
        {
            BoundingBox(Vector3(0.3375,0,0.3375),Vector3(0.6625,1,0.6625)),
            BoundingBox(Vector3(0.5625,0.3155765,0.46875),Vector3(1,0.8155764,0.53125)),
            BoundingBox(Vector3(0,0.3155765,0.46875),Vector3(0.4375,0.8155764,0.5312501))
        },
        {
            BoundingBox(Vector3(0.3375,0,0.3375),Vector3(0.6625,1,0.6625)),
            BoundingBox(Vector3(0.46875,0.3155765,0.5625),Vector3(0.53125,0.8155764,1))
        },
        {
            BoundingBox(Vector3(0.3375,0,0.3375),Vector3(0.6625,1,0.6625)),
            BoundingBox(Vector3(0.5625,0.3155765,0.46875),Vector3(1,0.8155764,0.53125)),
            BoundingBox(Vector3(0.46875,0.3155765,0.5625),Vector3(0.53125,0.8155764,1))
        },
        {
            BoundingBox(Vector3(0.3375,0,0.3375),Vector3(0.6625,1,0.6625)),
            BoundingBox(Vector3(0,0.3155765,0.46875),Vector3(0.4375,0.8155764,0.5312501)),
            BoundingBox(Vector3(0.46875,0.3155765,0.5625),Vector3(0.53125,0.8155764,1))
        },
        {
            BoundingBox(Vector3(0.3375,0,0.3375),Vector3(0.6625,1,0.6625)),
            BoundingBox(Vector3(0.5625,0.3155765,0.46875),Vector3(1,0.8155764,0.53125)),
            BoundingBox(Vector3(0,0.3155765,0.46875),Vector3(0.4375,0.8155764,0.5312501)),
            BoundingBox(Vector3(0.46875,0.3155765,0.5625),Vector3(0.53125,0.8155764,1))
        },
        {
            BoundingBox(Vector3(0.3375,0,0.3375),Vector3(0.6625,1,0.6625)),
            BoundingBox(Vector3(0.46875,0.3155765,0),Vector3(0.53125,0.8155764,0.4375))
        },
        {
            BoundingBox(Vector3(0.3375,0,0.3375),Vector3(0.6625,1,0.6625)),
            BoundingBox(Vector3(0.5625,0.3155765,0.46875),Vector3(1,0.8155764,0.53125)),
            BoundingBox(Vector3(0.46875,0.3155765,0),Vector3(0.53125,0.8155764,0.4375))
        },
        {
            BoundingBox(Vector3(0.3375,0,0.3375),Vector3(0.6625,1,0.6625)),
            BoundingBox(Vector3(0,0.3155765,0.46875),Vector3(0.4375,0.8155764,0.5312501)),
            BoundingBox(Vector3(0.46875,0.3155765,0),Vector3(0.53125,0.8155764,0.4375))
        },
        {
            BoundingBox(Vector3(0.3375,0,0.3375),Vector3(0.6625,1,0.6625)),
            BoundingBox(Vector3(0.5625,0.3155765,0.46875),Vector3(1,0.8155764,0.53125)),
            BoundingBox(Vector3(0,0.3155765,0.46875),Vector3(0.4375,0.8155764,0.5312501)),
            BoundingBox(Vector3(0.46875,0.3155765,0),Vector3(0.53125,0.8155764,0.4375))
        },
        {
            BoundingBox(Vector3(0.3375,0,0.3375),Vector3(0.6625,1,0.6625)),
            BoundingBox(Vector3(0.46875,0.3155765,0.5625),Vector3(0.53125,0.8155764,1)),
            BoundingBox(Vector3(0.46875,0.3155765,0),Vector3(0.53125,0.8155764,0.4375))
        },
        {
            BoundingBox(Vector3(0.3375,0,0.3375),Vector3(0.6625,1,0.6625)),
            BoundingBox(Vector3(0.5625,0.3155765,0.46875),Vector3(1,0.8155764,0.53125)),
            BoundingBox(Vector3(0.46875,0.3155765,0.5625),Vector3(0.53125,0.8155764,1)),
            BoundingBox(Vector3(0.46875,0.3155765,0),Vector3(0.53125,0.8155764,0.4375))
        },
        {
            BoundingBox(Vector3(0.3375,0,0.3375),Vector3(0.6625,1,0.6625)),
            BoundingBox(Vector3(0,0.3155765,0.46875),Vector3(0.4375,0.8155764,0.5312501)),
            BoundingBox(Vector3(0.46875,0.3155765,0.5625),Vector3(0.53125,0.8155764,1)),
            BoundingBox(Vector3(0.46875,0.3155765,0),Vector3(0.53125,0.8155764,0.4375))
        },
        {
            BoundingBox(Vector3(0.3375,0,0.3375),Vector3(0.6625,1,0.6625)),
            BoundingBox(Vector3(0.5625,0.3155765,0.46875),Vector3(1,0.8155764,0.53125)),
            BoundingBox(Vector3(0,0.3155765,0.46875),Vector3(0.4375,0.8155764,0.5312501)),
            BoundingBox(Vector3(0.46875,0.3155765,0.5625),Vector3(0.53125,0.8155764,1)),
            BoundingBox(Vector3(0.46875,0.3155765,0),Vector3(0.53125,0.8155764,0.4375))
        }
    };

    // 石围墙
    std::vector<BoundingBox> stoneFenceCollisionBoxes[16] =
    {
        {
            BoundingBox(Vector3(0.30625,0,0.305),Vector3(0.69375,1,0.6950001))
        },
        {
            BoundingBox(Vector3(0.30625,0,0.305),Vector3(0.69375,1,0.6950001)),
            BoundingBox(Vector3(0.59375,0,0.46875),Vector3(1,1,0.53125))
        },
        {
            BoundingBox(Vector3(0.30625,0,0.305),Vector3(0.69375,1,0.6950001)),
            BoundingBox(Vector3(0,0,0.46875),Vector3(0.40625,1,0.5312501))
        },
        {
            BoundingBox(Vector3(0.30625,0,0.305),Vector3(0.69375,1,0.6950001)),
            BoundingBox(Vector3(0.59375,0,0.46875),Vector3(1,1,0.53125)),
            BoundingBox(Vector3(0,0,0.46875),Vector3(0.40625,1,0.5312501))
        },
        {
            BoundingBox(Vector3(0.30625,0,0.305),Vector3(0.69375,1,0.6950001)),
            BoundingBox(Vector3(0.46875,0,0.59375),Vector3(0.53125,1,1))
        },
        {
            BoundingBox(Vector3(0.30625,0,0.305),Vector3(0.69375,1,0.6950001)),
            BoundingBox(Vector3(0.59375,0,0.46875),Vector3(1,1,0.53125)),
            BoundingBox(Vector3(0.46875,0,0.59375),Vector3(0.53125,1,1))
        },
        {
            BoundingBox(Vector3(0.30625,0,0.305),Vector3(0.69375,1,0.6950001)),
            BoundingBox(Vector3(0,0,0.46875),Vector3(0.40625,1,0.5312501)),
            BoundingBox(Vector3(0.46875,0,0.59375),Vector3(0.53125,1,1))
        },
        {
            BoundingBox(Vector3(0.30625,0,0.305),Vector3(0.69375,1,0.6950001)),
            BoundingBox(Vector3(0.59375,0,0.46875),Vector3(1,1,0.53125)),
            BoundingBox(Vector3(0,0,0.46875),Vector3(0.40625,1,0.5312501)),
            BoundingBox(Vector3(0.46875,0,0.59375),Vector3(0.53125,1,1))
        },
        {
            BoundingBox(Vector3(0.30625,0,0.305),Vector3(0.69375,1,0.6950001)),
            BoundingBox(Vector3(0.46875,0,0),Vector3(0.53125,1,0.40625))
        },
        {
            BoundingBox(Vector3(0.30625,0,0.305),Vector3(0.69375,1,0.6950001)),
            BoundingBox(Vector3(0.59375,0,0.46875),Vector3(1,1,0.53125)),
            BoundingBox(Vector3(0.46875,0,0),Vector3(0.53125,1,0.40625))
        },
        {
            BoundingBox(Vector3(0.30625,0,0.305),Vector3(0.69375,1,0.6950001)),
            BoundingBox(Vector3(0,0,0.46875),Vector3(0.40625,1,0.5312501)),
            BoundingBox(Vector3(0.46875,0,0),Vector3(0.53125,1,0.40625))
        },
        {
            BoundingBox(Vector3(0.30625,0,0.305),Vector3(0.69375,1,0.6950001)),
            BoundingBox(Vector3(0.59375,0,0.46875),Vector3(1,1,0.53125)),
            BoundingBox(Vector3(0,0,0.46875),Vector3(0.40625,1,0.5312501)),
            BoundingBox(Vector3(0.46875,0,0),Vector3(0.53125,1,0.40625))
        },
        {
            BoundingBox(Vector3(0.30625,0,0.305),Vector3(0.69375,1,0.6950001)),
            BoundingBox(Vector3(0.46875,0,0.59375),Vector3(0.53125,1,1)),
            BoundingBox(Vector3(0.46875,0,0),Vector3(0.53125,1,0.40625))
        },
        {
            BoundingBox(Vector3(0.30625,0,0.305),Vector3(0.69375,1,0.6950001)),
            BoundingBox(Vector3(0.59375,0,0.46875),Vector3(1,1,0.53125)),
            BoundingBox(Vector3(0.46875,0,0.59375),Vector3(0.53125,1,1)),
            BoundingBox(Vector3(0.46875,0,0),Vector3(0.53125,1,0.40625))
        },
        {
            BoundingBox(Vector3(0.30625,0,0.305),Vector3(0.69375,1,0.6950001)),
            BoundingBox(Vector3(0,0,0.46875),Vector3(0.40625,1,0.5312501)),
            BoundingBox(Vector3(0.46875,0,0.59375),Vector3(0.53125,1,1)),
            BoundingBox(Vector3(0.46875,0,0),Vector3(0.53125,1,0.40625))
        },
        {
            BoundingBox(Vector3(0.30625,0,0.305),Vector3(0.69375,1,0.6950001)),
            BoundingBox(Vector3(0.59375,0,0.46875),Vector3(1,1,0.53125)),
            BoundingBox(Vector3(0,0,0.46875),Vector3(0.40625,1,0.5312501)),
            BoundingBox(Vector3(0.46875,0,0.59375),Vector3(0.53125,1,1)),
            BoundingBox(Vector3(0.46875,0,0),Vector3(0.53125,1,0.40625))
        }
    };

    // 铁围墙
    std::vector<BoundingBox> ironFenceCollisionBoxes[16] =
    {
        {
            BoundingBox(Vector3(0.3558058,0,0.3558058),Vector3(0.6441942,1,0.6441942))
        },
        {
            BoundingBox(Vector3(0.3558058,0,0.3558058),Vector3(0.6441942,1,0.6441942)),
            BoundingBox(Vector3(0.544,0,0.5),Vector3(1,1,0.5))
        },
        {
            BoundingBox(Vector3(0.3558058,0,0.3558058),Vector3(0.6441942,1,0.6441942)),
            BoundingBox(Vector3(0,0,0.5),Vector3(0.456,1,0.5000001))
        },
        {
            BoundingBox(Vector3(0.3558058,0,0.3558058),Vector3(0.6441942,1,0.6441942)),
            BoundingBox(Vector3(0.544,0,0.5),Vector3(1,1,0.5)),
            BoundingBox(Vector3(0,0,0.5),Vector3(0.456,1,0.5000001))
        },
        {
            BoundingBox(Vector3(0.3558058,0,0.3558058),Vector3(0.6441942,1,0.6441942)),
            BoundingBox(Vector3(0.5,0,0.544),Vector3(0.5,1,1))
        },
        {
            BoundingBox(Vector3(0.3558058,0,0.3558058),Vector3(0.6441942,1,0.6441942)),
            BoundingBox(Vector3(0.544,0,0.5),Vector3(1,1,0.5)),
            BoundingBox(Vector3(0.5,0,0.544),Vector3(0.5,1,1))
        },
        {
            BoundingBox(Vector3(0.3558058,0,0.3558058),Vector3(0.6441942,1,0.6441942)),
            BoundingBox(Vector3(0,0,0.5),Vector3(0.456,1,0.5000001)),
            BoundingBox(Vector3(0.5,0,0.544),Vector3(0.5,1,1))
        },
        {
            BoundingBox(Vector3(0.3558058,0,0.3558058),Vector3(0.6441942,1,0.6441942)),
            BoundingBox(Vector3(0.544,0,0.5),Vector3(1,1,0.5)),
            BoundingBox(Vector3(0,0,0.5),Vector3(0.456,1,0.5000001)),
            BoundingBox(Vector3(0.5,0,0.544),Vector3(0.5,1,1))
        },
        {
            BoundingBox(Vector3(0.3558058,0,0.3558058),Vector3(0.6441942,1,0.6441942)),
            BoundingBox(Vector3(0.5,0,0),Vector3(0.5,1,0.456))
        },
        {
            BoundingBox(Vector3(0.3558058,0,0.3558058),Vector3(0.6441942,1,0.6441942)),
            BoundingBox(Vector3(0.544,0,0.5),Vector3(1,1,0.5)),
            BoundingBox(Vector3(0.5,0,0),Vector3(0.5,1,0.456))
        },
        {
            BoundingBox(Vector3(0.3558058,0,0.3558058),Vector3(0.6441942,1,0.6441942)),
            BoundingBox(Vector3(0,0,0.5),Vector3(0.456,1,0.5000001)),
            BoundingBox(Vector3(0.5,0,0),Vector3(0.5,1,0.456))
        },
        {
            BoundingBox(Vector3(0.3558058,0,0.3558058),Vector3(0.6441942,1,0.6441942)),
            BoundingBox(Vector3(0.544,0,0.5),Vector3(1,1,0.5)),
            BoundingBox(Vector3(0,0,0.5),Vector3(0.456,1,0.5000001)),
            BoundingBox(Vector3(0.5,0,0),Vector3(0.5,1,0.456))
        },
        {
            BoundingBox(Vector3(0.3558058,0,0.3558058),Vector3(0.6441942,1,0.6441942)),
            BoundingBox(Vector3(0.5,0,0.544),Vector3(0.5,1,1)),
            BoundingBox(Vector3(0.5,0,0),Vector3(0.5,1,0.456))
        },
        {
            BoundingBox(Vector3(0.3558058,0,0.3558058),Vector3(0.6441942,1,0.6441942)),
            BoundingBox(Vector3(0.544,0,0.5),Vector3(1,1,0.5)),
            BoundingBox(Vector3(0.5,0,0.544),Vector3(0.5,1,1)),
            BoundingBox(Vector3(0.5,0,0),Vector3(0.5,1,0.456))
        },
        {
            BoundingBox(Vector3(0.3558058,0,0.3558058),Vector3(0.6441942,1,0.6441942)),
            BoundingBox(Vector3(0,0,0.5),Vector3(0.456,1,0.5000001)),
            BoundingBox(Vector3(0.5,0,0.544),Vector3(0.5,1,1)),
            BoundingBox(Vector3(0.5,0,0),Vector3(0.5,1,0.456))
        },
        {
            BoundingBox(Vector3(0.3558058,0,0.3558058),Vector3(0.6441942,1,0.6441942)),
            BoundingBox(Vector3(0.544,0,0.5),Vector3(1,1,0.5)),
            BoundingBox(Vector3(0,0,0.5),Vector3(0.456,1,0.5000001)),
            BoundingBox(Vector3(0.5,0,0.544),Vector3(0.5,1,1)),
            BoundingBox(Vector3(0.5,0,0),Vector3(0.5,1,0.456))
        }
    };

    // 木围墙门
    std::vector<BoundingBox> woodenFenceGateCollisionBoxes[16] =
    {
        {
            BoundingBox(Vector3(0,0,0.4374999),Vector3(1,1,0.5625001))
        },
        {
            BoundingBox(Vector3(0.4374999,0,0),Vector3(0.5625001,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0.4375),Vector3(1,1,0.5625001))
        },
        {
            BoundingBox(Vector3(0.4374999,0,0),Vector3(0.5625001,1,1))
        },
        {
            BoundingBox(Vector3(0.8749999,0,0),Vector3(1,1,0.5625))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(0.5625,1,0.1250001))
        },
        {
            BoundingBox(Vector3(0,0,0.4375),Vector3(0.1250001,1,1))
        },
        {
            BoundingBox(Vector3(0.4375,0,0.8749999),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0.4374999),Vector3(1,1,0.5625001))
        },
        {
            BoundingBox(Vector3(0.4374999,0,0),Vector3(0.5625001,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0.4374999),Vector3(1,1,0.5625001))
        },
        {
            BoundingBox(Vector3(0.4374999,0,0),Vector3(0.5625001,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(0.1250001,1,0.5625))
        },
        {
            BoundingBox(Vector3(0,0,0.8749999),Vector3(0.5625,1,1))
        },
        {
            BoundingBox(Vector3(0.8749999,0,0.4375),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0.4375,0,0),Vector3(1,1,0.1250001))
        }
    };

    // 铁围墙门
    std::vector<BoundingBox> ironFenceGateCollisionBoxes[16] =
    {
        {
            BoundingBox(Vector3(0,0,0.4514651),Vector3(1,1,0.5485348))
        },
        {
            BoundingBox(Vector3(0.4514651,0,0),Vector3(0.5485348,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0.4514652),Vector3(1,1,0.5485349))
        },
        {
            BoundingBox(Vector3(0.4514652,0,0),Vector3(0.5485349,1,1))
        },
        {
            BoundingBox(Vector3(0.9071652,0,0),Vector3(1,1,0.548689))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(0.5486889,1,0.09283482))
        },
        {
            BoundingBox(Vector3(0,0,0.4513111),Vector3(0.0928348,1,1))
        },
        {
            BoundingBox(Vector3(0.4513111,0,0.9071652),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0.4514651),Vector3(1,1,0.5485348))
        },
        {
            BoundingBox(Vector3(0.4514651,0,0),Vector3(0.5485349,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0.4514651),Vector3(1,1,0.5485348))
        },
        {
            BoundingBox(Vector3(0.4514652,0,0),Vector3(0.5485349,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(0.09283481,1,0.548689))
        },
        {
            BoundingBox(Vector3(0,0,0.9071652),Vector3(0.548689,1,1))
        },
        {
            BoundingBox(Vector3(0.9071652,0,0.451311),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0.4513111,0,0),Vector3(1,1,0.09283482))
        }
    };

    // 4面LED灯
    std::vector<BoundingBox> fourLedCollisionBoxes[6] =
    {
        {
            BoundingBox(Vector3(0,0,-2.185569E-08),Vector3(1,1,0.06250002))
        },
        {
            BoundingBox(Vector3(-4.371139E-08,0,0),Vector3(0.06250004,1,1))
        },
        {
            BoundingBox(Vector3(5.960464E-08,0,0.9374999),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0.9375,0,0),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,0.0625,1))
        },
        {
            BoundingBox(Vector3(0,0.9374999,0),Vector3(1,1,1))
        }
    };

    // 草皮陷阱
    std::vector<BoundingBox> grassTrapCollisionBoxes = 
    {
        BoundingBox(Vector3(0.0f, 0.75f, 0.0f), Vector3(1.0f, 0.95f, 1.0f))
    };

    // 墓碑
    std::vector<BoundingBox> gravestoneCollisionBoxes[16] =
    {
        {
            BoundingBox(Vector3(0.125,0,0.40625),Vector3(0.875,1.014401,0.59375))
        },
        {
            BoundingBox(Vector3(0.125,0,0.40625),Vector3(0.875,1,0.59375))
        },
        {
            BoundingBox(Vector3(0.125,0,0.40625),Vector3(0.875,0.9087901,0.59375))
        },
        {
            BoundingBox(Vector3(0.125,0,0.40625),Vector3(0.875,0.8347211,0.59375))
        },
        {
            BoundingBox(Vector3(0.0625,0,0.3125),Vector3(0.9375,1.014401,0.6875))
        },
        {
            BoundingBox(Vector3(0.0625,0,0.3125),Vector3(0.9375,1,0.6875))
        },
        {
            BoundingBox(Vector3(0.0625,0,0.3125),Vector3(0.9375,0.9087901,0.6875))
        },
        {
            BoundingBox(Vector3(0.0625,0,0.3125),Vector3(0.9375,0.8347211,0.6875))
        },
        {
            BoundingBox(Vector3(0.4062499,0,0.125),Vector3(0.59375,1.014401,0.875))
        },
        {
            BoundingBox(Vector3(0.4062499,0,0.125),Vector3(0.59375,1,0.875))
        },
        {
            BoundingBox(Vector3(0.4062499,0,0.125),Vector3(0.59375,0.9087901,0.875))
        },
        {
            BoundingBox(Vector3(0.4062499,0,0.125),Vector3(0.59375,0.8347211,0.875))
        },
        {
            BoundingBox(Vector3(0.3125,0,0.0625),Vector3(0.6875,1.014401,0.9375))
        },
        {
            BoundingBox(Vector3(0.3125,0,0.0625),Vector3(0.6875,1,0.9375))
        },
        {
            BoundingBox(Vector3(0.3125,0,0.0625),Vector3(0.6875,0.9087901,0.9375))
        },
        {
            BoundingBox(Vector3(0.3125,0,0.0625),Vector3(0.6875,0.8347211,0.9375))
        }
    };

    // 小型火药桶
    std::vector<BoundingBox> smallGunpowderKegCollisionBoxes =
    {
        BoundingBox(Vector3(0.3,0.0f,0.3),Vector3(0.695f,0.434f,0.695f))
    };

    // 中型火药桶
    std::vector<BoundingBox> mediumGunpowderKegCollisionBoxes =
    {
        BoundingBox(Vector3(0.2f, 0.0f, 0.2f),Vector3(0.8f, 0.66f, 0.8f))
    };

    // 大型火药桶
    std::vector<BoundingBox> largeGunpowderKegCollisionBoxes =
    {
        BoundingBox(Vector3(0.0475f, 0.0f, 0.0475f),Vector3(0.952f, 1.0f, 0.952f))
    };

    // 湿度计
    std::vector<BoundingBox> hygrometerCollisionBoxes[4] =
    {
        {
            BoundingBox(Vector3(0.1581281,0.1506717,-0.006255746),Vector3(0.8418717,0.6341515,0.08009247))
        },
        {
            BoundingBox(Vector3(-0.00625575,0.1506717,0.1581283),Vector3(0.08009247,0.6341515,0.8418719))
        },
        {
            BoundingBox(Vector3(0.1581282,0.1506717,0.9199075),Vector3(0.8418719,0.6341515,1.006256))
        },
        {
            BoundingBox(Vector3(0.9199075,0.1506717,0.1581281),Vector3(1.006256,0.6341515,0.8418717))
        }
    };

    // 藤蔓
    std::vector<BoundingBox> ivyCollisionBoxes[4] =
    {
        {
            BoundingBox(Vector3(0.0f, 0.0f, 0.9375f), FastVector3::One),
        },
        {
            BoundingBox(Vector3(0.9375f, 0.0f, 0.0f), FastVector3::One),
        },
        {
            BoundingBox(FastVector3::Zero, Vector3(1.0f, 1.0f, 0.0625f)),
        },
        {
            BoundingBox(FastVector3::Zero, Vector3(0.0625f, 1.0f, 1.0f)),
        }
    };

    // 南瓜灯
    std::vector<BoundingBox> jackOLanternCollisionBoxes = 
    {
        BoundingBox(Vector3(0.1249829,0,0.1249829),Vector3(0.875017,0.5755616,0.875017))
    };

    // 木梯子
    std::vector<BoundingBox> woodenLadderCollisionBoxes[4] =
    {
        {
            BoundingBox(Vector3(0.0625,0,0),Vector3(0.9375,1,0.125))
        },
        {
            BoundingBox(Vector3(-2.235174E-08,0,0.0625),Vector3(0.125,1,0.9375))
        },
        {
            BoundingBox(Vector3(0.06250006,0,0.8749999),Vector3(0.9375001,1,1))
        },
        {
            BoundingBox(Vector3(0.875,0,0.0625),Vector3(1,1,0.9375))
        }
    };

    // 铁梯子
    std::vector<BoundingBox> ironLadderCollisionBoxes[4] =
    {
        {
            BoundingBox(Vector3(0.1225571,0,3.696978E-05),Vector3(0.8750018,1,0.125))
        },
        {
            BoundingBox(Vector3(3.695488E-05,0,0.1249982),Vector3(0.125,1,0.8774429))
        },
        {
            BoundingBox(Vector3(0.1249983,0,0.8749999),Vector3(0.877443,1,0.999963))
        },
        {
            BoundingBox(Vector3(0.875,0,0.1225571),Vector3(0.999963,1,0.8750018))
        }
    };

    // LED灯
    std::vector<BoundingBox> ledCollisionBoxes[64] =
    {
        {
            BoundingBox(Vector3(0.3025,0.3025,-8.632999E-09),Vector3(0.6975,0.6975,0.06250001))
        },
        {
            BoundingBox(Vector3(-1.7266E-08,0.3025,0.3025),Vector3(0.06250001,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025001,0.3025,0.9375),Vector3(0.6975001,0.6975,1))
        },
        {
            BoundingBox(Vector3(0.9375,0.3025,0.3025),Vector3(1,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0,0.3025),Vector3(0.6975,0.0625,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0.9375,0.3025),Vector3(0.6975,1,0.6975))
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        },
        {
            BoundingBox(Vector3(0.3025,0.3025,-8.632999E-09),Vector3(0.6975,0.6975,0.06250001))
        },
        {
            BoundingBox(Vector3(-1.7266E-08,0.3025,0.3025),Vector3(0.06250001,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025001,0.3025,0.9375),Vector3(0.6975001,0.6975,1))
        },
        {
            BoundingBox(Vector3(0.9375,0.3025,0.3025),Vector3(1,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0,0.3025),Vector3(0.6975,0.0625,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0.9375,0.3025),Vector3(0.6975,1,0.6975))
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        },
        {
            BoundingBox(Vector3(0.3025,0.3025,-8.632999E-09),Vector3(0.6975,0.6975,0.06250001))
        },
        {
            BoundingBox(Vector3(-1.7266E-08,0.3025,0.3025),Vector3(0.06250001,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025001,0.3025,0.9375),Vector3(0.6975001,0.6975,1))
        },
        {
            BoundingBox(Vector3(0.9375,0.3025,0.3025),Vector3(1,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0,0.3025),Vector3(0.6975,0.0625,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0.9375,0.3025),Vector3(0.6975,1,0.6975))
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        },
        {
            BoundingBox(Vector3(0.3025,0.3025,-8.632999E-09),Vector3(0.6975,0.6975,0.06250001))
        },
        {
            BoundingBox(Vector3(-1.7266E-08,0.3025,0.3025),Vector3(0.06250001,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025001,0.3025,0.9375),Vector3(0.6975001,0.6975,1))
        },
        {
            BoundingBox(Vector3(0.9375,0.3025,0.3025),Vector3(1,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0,0.3025),Vector3(0.6975,0.0625,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0.9375,0.3025),Vector3(0.6975,1,0.6975))
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        },
        {
            BoundingBox(Vector3(0.3025,0.3025,-8.632999E-09),Vector3(0.6975,0.6975,0.06250001))
        },
        {
            BoundingBox(Vector3(-1.7266E-08,0.3025,0.3025),Vector3(0.06250001,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025001,0.3025,0.9375),Vector3(0.6975001,0.6975,1))
        },
        {
            BoundingBox(Vector3(0.9375,0.3025,0.3025),Vector3(1,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0,0.3025),Vector3(0.6975,0.0625,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0.9375,0.3025),Vector3(0.6975,1,0.6975))
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        },
        {
            BoundingBox(Vector3(0.3025,0.3025,-8.632999E-09),Vector3(0.6975,0.6975,0.06250001))
        },
        {
            BoundingBox(Vector3(-1.7266E-08,0.3025,0.3025),Vector3(0.06250001,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025001,0.3025,0.9375),Vector3(0.6975001,0.6975,1))
        },
        {
            BoundingBox(Vector3(0.9375,0.3025,0.3025),Vector3(1,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0,0.3025),Vector3(0.6975,0.0625,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0.9375,0.3025),Vector3(0.6975,1,0.6975))
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        },
        {
            BoundingBox(Vector3(0.3025,0.3025,-8.632999E-09),Vector3(0.6975,0.6975,0.06250001))
        },
        {
            BoundingBox(Vector3(-1.7266E-08,0.3025,0.3025),Vector3(0.06250001,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025001,0.3025,0.9375),Vector3(0.6975001,0.6975,1))
        },
        {
            BoundingBox(Vector3(0.9375,0.3025,0.3025),Vector3(1,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0,0.3025),Vector3(0.6975,0.0625,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0.9375,0.3025),Vector3(0.6975,1,0.6975))
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        },
        {
            BoundingBox(Vector3(0.3025,0.3025,-8.632999E-09),Vector3(0.6975,0.6975,0.06250001))
        },
        {
            BoundingBox(Vector3(-1.7266E-08,0.3025,0.3025),Vector3(0.06250001,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025001,0.3025,0.9375),Vector3(0.6975001,0.6975,1))
        },
        {
            BoundingBox(Vector3(0.9375,0.3025,0.3025),Vector3(1,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0,0.3025),Vector3(0.6975,0.0625,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0.9375,0.3025),Vector3(0.6975,1,0.6975))
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        }
    };

    // 电灯
    std::vector<BoundingBox> lightbulbCollisionBoxes[6] =
    {
        {
            BoundingBox(Vector3(0.0625,0.0625,-1.912373E-08),Vector3(0.9375,0.9375,0.125))
        },
        {
            BoundingBox(Vector3(-3.824746E-08,0.0625,0.0625),Vector3(0.125,0.9375,0.9375))
        },
        {
            BoundingBox(Vector3(0.06250006,0.0625,0.8749999),Vector3(0.9375001,0.9375,1))
        },
        {
            BoundingBox(Vector3(0.875,0.0625,0.0625),Vector3(1,0.9375,0.9375))
        },
        {
            BoundingBox(Vector3(0.0625,0,0.0625),Vector3(0.9375,0.125,0.9375))
        },
        {
            BoundingBox(Vector3(0.0625,0.8749999,0.0625),Vector3(0.9375,1,0.9375))
        }
    };

    // 磁铁
    std::vector<BoundingBox> magnetCollisionBoxes[2] =
    {
        {
            BoundingBox(Vector3(0.375,9.313226E-09,0.2612675),Vector3(0.625,0.5814952,0.7387325))
        },
        {
            BoundingBox(Vector3(0.2612675,9.313226E-09,0.375),Vector3(0.7387325,0.5814952,0.625))
        }
    };

    // 运动传感器
    std::vector<BoundingBox> motionDetectorCollisionBoxes[6] =
    {
        {
            BoundingBox(Vector3(0.375,0.3025,-8.632999E-09),Vector3(0.625,0.6975,0.06250001))
        },
        {
            BoundingBox(Vector3(-1.409692E-08,0.3025,0.375),Vector3(0.06250001,0.6975,0.625))
        },
        {
            BoundingBox(Vector3(0.3750001,0.3025,0.9375),Vector3(0.6250001,0.6975,1))
        },
        {
            BoundingBox(Vector3(0.9375,0.3025,0.375),Vector3(1,0.6975,0.625))
        },
        {
            BoundingBox(Vector3(0.375,0,0.3025),Vector3(0.625,0.0625,0.6975))
        },
        {
            BoundingBox(Vector3(0.375,0.9375,0.3025),Vector3(0.625,1,0.6975))
        }
    };


    // 彩色LED
    std::vector<BoundingBox> multicoloredLedCollisionBoxes[6] =
    {
        {
            BoundingBox(Vector3(0.3025,0.3025,-8.632999E-09),Vector3(0.6975,0.6975,0.06250001))
        },
        {
            BoundingBox(Vector3(-1.7266E-08,0.3025,0.3025),Vector3(0.06250001,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025001,0.3025,0.9375),Vector3(0.6975001,0.6975,1))
        },
        {
            BoundingBox(Vector3(0.9375,0.3025,0.3025),Vector3(1,0.6975,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0,0.3025),Vector3(0.6975,0.0625,0.6975))
        },
        {
            BoundingBox(Vector3(0.3025,0.9375,0.3025),Vector3(0.6975,1,0.6975))
        }
    };

    // 1面LED
    std::vector<BoundingBox> oneLedCollisionBoxes[6] =
    {
        {
            BoundingBox(Vector3(0,0,-2.185569E-08),Vector3(1,1,0.06250002))
        },
        {
            BoundingBox(Vector3(-4.371139E-08,0,0),Vector3(0.06250004,1,1))
        },
        {
            BoundingBox(Vector3(5.960464E-08,0,0.9374999),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0.9375,0,0),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,0.0625,1))
        },
        {
            BoundingBox(Vector3(0,0.9374999,0),Vector3(1,1,1))
        }
    };

    // 光敏二极管
    std::vector<BoundingBox> photodiodeCollisionBoxes[6] =
    {
        {
            BoundingBox(Vector3(0.375,0.3025,-8.632999E-09),Vector3(0.625,0.6975,0.06250001))
        },
        {
            BoundingBox(Vector3(-1.409692E-08,0.3025,0.375),Vector3(0.06250001,0.6975,0.625))
        },
        {
            BoundingBox(Vector3(0.3750001,0.3025,0.9375),Vector3(0.6250001,0.6975,1))
        },
        {
            BoundingBox(Vector3(0.9375,0.3025,0.375),Vector3(1,0.6975,0.625))
        },
        {
            BoundingBox(Vector3(0.375,0,0.3025),Vector3(0.625,0.0625,0.6975))
        },
        {
            BoundingBox(Vector3(0.375,0.9375,0.3025),Vector3(0.625,1,0.6975))
        }
    };

    // 木告示牌
    std::vector<BoundingBox> woodenPostedSignCollisionBoxes[16] =
    {
        {
            BoundingBox(Vector3(0,0.5625,0.46875),Vector3(1,1,0.53125)),
            BoundingBox(Vector3(0.46875,0,0.4687),Vector3(0.53125,0.5625,0.5313))
        },
        {
            BoundingBox(Vector3(0.1243495,0.5625,0.1243495),Vector3(0.8756505,1,0.8756505)),
            BoundingBox(Vector3(0.4557705,0,0.4557705),Vector3(0.5442295,0.5625,0.5442295))
        },
        {
            BoundingBox(Vector3(0.46875,0.5625,0),Vector3(0.53125,1,1)),
            BoundingBox(Vector3(0.4687,0,0.46875),Vector3(0.5313,0.5625,0.53125))
        },
        {
            BoundingBox(Vector3(0.1243495,0.5625,0.1243495),Vector3(0.8756505,1,0.8756505)),
            BoundingBox(Vector3(0.4557705,0,0.4557705),Vector3(0.5442295,0.5625,0.5442295))
        },
        {
            BoundingBox(Vector3(0,0.5625,0.4687499),Vector3(1,1,0.5312501)),
            BoundingBox(Vector3(0.46875,0,0.4687),Vector3(0.53125,0.5625,0.5313))
        },
        {
            BoundingBox(Vector3(0.1243496,0.5625,0.1243495),Vector3(0.8756504,1,0.8756505)),
            BoundingBox(Vector3(0.4557705,0,0.4557705),Vector3(0.5442295,0.5625,0.5442295))
        },
        {
            BoundingBox(Vector3(0.46875,0.5625,0),Vector3(0.53125,1,1)),
            BoundingBox(Vector3(0.4687,0,0.46875),Vector3(0.5313,0.5625,0.53125))
        },
        {
            BoundingBox(Vector3(0.1243494,0.5625,0.1243497),Vector3(0.8756506,1,0.8756503)),
            BoundingBox(Vector3(0.4557705,0,0.4557705),Vector3(0.5442295,0.5625,0.5442295))
        },
        {
            BoundingBox(Vector3(0,0,0.46875),Vector3(1,0.4375,0.53125)),
            BoundingBox(Vector3(0.46875,0.4375,0.4687),Vector3(0.53125,1,0.5313))
        },
        {
            BoundingBox(Vector3(0.1243495,0,0.1243495),Vector3(0.8756505,0.4375,0.8756505)),
            BoundingBox(Vector3(0.4557705,0.4375,0.4557705),Vector3(0.5442295,1,0.5442295))
        },
        {
            BoundingBox(Vector3(0.46875,0,0),Vector3(0.53125,0.4375,1)),
            BoundingBox(Vector3(0.4687,0.4375,0.46875),Vector3(0.5313,1,0.53125))
        },
        {
            BoundingBox(Vector3(0.1243495,0,0.1243495),Vector3(0.8756505,0.4375,0.8756505)),
            BoundingBox(Vector3(0.4557705,0.4375,0.4557705),Vector3(0.5442295,1,0.5442295))
        },
        {
            BoundingBox(Vector3(0,0,0.4687499),Vector3(1,0.4375,0.5312501)),
            BoundingBox(Vector3(0.46875,0.4375,0.4687),Vector3(0.53125,1,0.5313))
        },
        {
            BoundingBox(Vector3(0.1243496,0,0.1243495),Vector3(0.8756504,0.4375,0.8756505)),
            BoundingBox(Vector3(0.4557705,0.4375,0.4557705),Vector3(0.5442295,1,0.5442295))
        },
        {
            BoundingBox(Vector3(0.46875,0,0),Vector3(0.53125,0.4375,1)),
            BoundingBox(Vector3(0.4687,0.4375,0.46875),Vector3(0.5313,1,0.53125))
        },
        {
            BoundingBox(Vector3(0.1243494,0,0.1243497),Vector3(0.8756506,0.4375,0.8756503)),
            BoundingBox(Vector3(0.4557705,0.4375,0.4557705),Vector3(0.5442295,1,0.5442295))
        }
    };

    // 铁告示牌
    std::vector<BoundingBox> ironPostedSignCollisionBoxes[16] =
    {
        {
            BoundingBox(Vector3(0,0.5625,0.46875),Vector3(1,1,0.53125)),
            BoundingBox(Vector3(0.46875,0,0.4687),Vector3(0.53125,0.5625,0.5313))
        },
        {
            BoundingBox(Vector3(0.1243495,0.5625,0.1243495),Vector3(0.8756505,1,0.8756505)),
            BoundingBox(Vector3(0.4557705,0,0.4557705),Vector3(0.5442295,0.5625,0.5442295))
        },
        {
            BoundingBox(Vector3(0.46875,0.5625,0),Vector3(0.53125,1,1)),
            BoundingBox(Vector3(0.4687,0,0.46875),Vector3(0.5313,0.5625,0.53125))
        },
        {
            BoundingBox(Vector3(0.1243495,0.5625,0.1243495),Vector3(0.8756505,1,0.8756505)),
            BoundingBox(Vector3(0.4557705,0,0.4557705),Vector3(0.5442295,0.5625,0.5442295))
        },
        {
            BoundingBox(Vector3(0,0.5625,0.4687499),Vector3(1,1,0.5312501)),
            BoundingBox(Vector3(0.46875,0,0.4687),Vector3(0.53125,0.5625,0.5313))
        },
        {
            BoundingBox(Vector3(0.1243496,0.5625,0.1243495),Vector3(0.8756504,1,0.8756505)),
            BoundingBox(Vector3(0.4557705,0,0.4557705),Vector3(0.5442295,0.5625,0.5442295))
        },
        {
            BoundingBox(Vector3(0.46875,0.5625,0),Vector3(0.53125,1,1)),
            BoundingBox(Vector3(0.4687,0,0.46875),Vector3(0.5313,0.5625,0.53125))
        },
        {
            BoundingBox(Vector3(0.1243494,0.5625,0.1243497),Vector3(0.8756506,1,0.8756503)),
            BoundingBox(Vector3(0.4557705,0,0.4557705),Vector3(0.5442295,0.5625,0.5442295))
        },
        {
            BoundingBox(Vector3(0,0,0.46875),Vector3(1,0.4375,0.53125)),
            BoundingBox(Vector3(0.46875,0.4375,0.4687),Vector3(0.53125,1,0.5313))
        },
        {
            BoundingBox(Vector3(0.1243495,0,0.1243495),Vector3(0.8756505,0.4375,0.8756505)),
            BoundingBox(Vector3(0.4557705,0.4375,0.4557705),Vector3(0.5442295,1,0.5442295))
        },
        {
            BoundingBox(Vector3(0.46875,0,0),Vector3(0.53125,0.4375,1)),
            BoundingBox(Vector3(0.4687,0.4375,0.46875),Vector3(0.5313,1,0.53125))
        },
        {
            BoundingBox(Vector3(0.1243495,0,0.1243495),Vector3(0.8756505,0.4375,0.8756505)),
            BoundingBox(Vector3(0.4557705,0.4375,0.4557705),Vector3(0.5442295,1,0.5442295))
        },
        {
            BoundingBox(Vector3(0,0,0.4687499),Vector3(1,0.4375,0.5312501)),
            BoundingBox(Vector3(0.46875,0.4375,0.4687),Vector3(0.53125,1,0.5313))
        },
        {
            BoundingBox(Vector3(0.1243496,0,0.1243495),Vector3(0.8756504,0.4375,0.8756505)),
            BoundingBox(Vector3(0.4557705,0.4375,0.4557705),Vector3(0.5442295,1,0.5442295))
        },
        {
            BoundingBox(Vector3(0.46875,0,0),Vector3(0.53125,0.4375,1)),
            BoundingBox(Vector3(0.4687,0.4375,0.46875),Vector3(0.5313,1,0.53125))
        },
        {
            BoundingBox(Vector3(0.1243494,0,0.1243497),Vector3(0.8756506,0.4375,0.8756503)),
            BoundingBox(Vector3(0.4557705,0.4375,0.4557705),Vector3(0.5442295,1,0.5442295))
        }
    };

    // 压力板
    std::vector<BoundingBox> pressurePlateCollisionBoxes[16] =
    {
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,1,0.06))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,1,0.06))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(0.06,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(0.06,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0.94),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0.94),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0.94,0,0),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0.94,0,0),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,0.06,1))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,0.06,1))
        },
        {
            BoundingBox(Vector3(0,0.94,0),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0.94,0),Vector3(1,1,1))
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        },
        {
            BoundingBox(FastVector3::Zero, FastVector3::Zero),
        }
    };

    // 电路门
    std::vector<BoundingBox> gatesCollisionBoxes[24] =
    {
        {
            BoundingBox(Vector3(0.25,0.3125,-8.195887E-09),Vector3(0.75,0.75,0.06250001))
        },
        {
            BoundingBox(Vector3(0.3124999,0.25,-8.195887E-09),Vector3(0.75,0.75,0.06250001))
        },
        {
            BoundingBox(Vector3(0.25,0.25,-8.195887E-09),Vector3(0.75,0.6875001,0.06250001))
        },
        {
            BoundingBox(Vector3(0.25,0.25,-8.195887E-09),Vector3(0.6875,0.75,0.06250001))
        },
        {
            BoundingBox(Vector3(-1.912373E-08,0.3125,0.25),Vector3(0.06250001,0.75,0.75))
        },
        {
            BoundingBox(Vector3(-4.776714E-16,0.25,0.25),Vector3(0.0625,0.75,0.6875001))
        },
        {
            BoundingBox(Vector3(-1.912374E-08,0.25,0.25),Vector3(0.06250001,0.6875001,0.75))
        },
        {
            BoundingBox(Vector3(-1.639177E-08,0.25,0.3125),Vector3(0.06250002,0.75,0.75))
        },
        {
            BoundingBox(Vector3(0.2500001,0.3125,0.9375),Vector3(0.7500001,0.75,1))
        },
        {
            BoundingBox(Vector3(0.2500001,0.25,0.9375),Vector3(0.6875001,0.75,1))
        },
        {
            BoundingBox(Vector3(0.25,0.25,0.9375),Vector3(0.7500001,0.6875001,1))
        },
        {
            BoundingBox(Vector3(0.3125,0.25,0.9375),Vector3(0.7500001,0.75,1))
        },
        {
            BoundingBox(Vector3(0.9375,0.3125,0.25),Vector3(1,0.75,0.75))
        },
        {
            BoundingBox(Vector3(0.9375,0.25,0.3124999),Vector3(1,0.75,0.75))
        },
        {
            BoundingBox(Vector3(0.9375,0.25,0.25),Vector3(1,0.6875001,0.75))
        },
        {
            BoundingBox(Vector3(0.9375,0.25,0.25),Vector3(1,0.75,0.6875))
        },
        {
            BoundingBox(Vector3(0.25,0,0.25),Vector3(0.75,0.0625,0.6875))
        },
        {
            BoundingBox(Vector3(0.3124999,-1.912374E-08,0.25),Vector3(0.75,0.06250001,0.75))
        },
        {
            BoundingBox(Vector3(0.25,-1.639178E-08,0.3124999),Vector3(0.75,0.06250002,0.75))
        },
        {
            BoundingBox(Vector3(0.25,-1.912373E-08,0.25),Vector3(0.6875,0.06250001,0.75))
        },
        {
            BoundingBox(Vector3(0.25,0.9375,0.3125),Vector3(0.75,1,0.75))
        },
        {
            BoundingBox(Vector3(0.3124999,0.9375,0.25),Vector3(0.75,1,0.75))
        },
        {
            BoundingBox(Vector3(0.25,0.9375,0.25),Vector3(0.75,1,0.6875001))
        },
        {
            BoundingBox(Vector3(0.25,0.9375,0.25),Vector3(0.6875,1,0.75))
        }
    };

    // 海胆
    std::vector<BoundingBox> seaUrchinCollisionBoxes[24] =
    {
        {
            BoundingBox(Vector3(0.1340719,0.1282161,0.009879666),Vector3(0.6297698,0.5640906,0.2631342))
        },
        {
            BoundingBox(Vector3(0.3891203,0.1399575,0.009879666),Vector3(0.9115101,0.6386383,0.2631342))
        },
        {
            BoundingBox(Vector3(0.1282503,0.3687358,0.009879666),Vector3(0.6403979,0.9365735,0.2631342))
        },
        {
            BoundingBox(Vector3(0.375349,0.3465652,0.009879666),Vector3(0.885626,0.8429974,0.2631342))
        },
        {
            BoundingBox(Vector3(0.009879664,0.1282161,0.3702301),Vector3(0.2631342,0.5640906,0.8659281))
        },
        {
            BoundingBox(Vector3(0.009879663,0.1399575,0.08848995),Vector3(0.2631342,0.6386383,0.6108797))
        },
        {
            BoundingBox(Vector3(0.009879669,0.3687358,0.3596021),Vector3(0.2631342,0.9365735,0.8717498))
        },
        {
            BoundingBox(Vector3(0.009879665,0.3465652,0.114374),Vector3(0.2631342,0.8429974,0.624651))
        },
        {
            BoundingBox(Vector3(0.3702302,0.1282161,0.7368658),Vector3(0.8659282,0.5640906,0.9901204))
        },
        {
            BoundingBox(Vector3(0.08848995,0.1399575,0.7368658),Vector3(0.6108797,0.6386383,0.9901204))
        },
        {
            BoundingBox(Vector3(0.3596021,0.3687358,0.7368658),Vector3(0.8717498,0.9365735,0.9901204))
        },
        {
            BoundingBox(Vector3(0.1143741,0.3465652,0.7368658),Vector3(0.6246511,0.8429974,0.9901204))
        },
        {
            BoundingBox(Vector3(0.7368658,0.1282161,0.1340719),Vector3(0.9901204,0.5640906,0.6297698))
        },
        {
            BoundingBox(Vector3(0.7368658,0.1399575,0.3891203),Vector3(0.9901204,0.6386383,0.9115101))
        },
        {
            BoundingBox(Vector3(0.7368658,0.3687358,0.1282503),Vector3(0.9901204,0.9365735,0.6403979))
        },
        {
            BoundingBox(Vector3(0.7368658,0.3465652,0.375349),Vector3(0.9901204,0.8429974,0.885626))
        },
        {
            BoundingBox(Vector3(0.1340719,0.009879669,0.4359095),Vector3(0.6297698,0.2631342,0.8717839))
        },
        {
            BoundingBox(Vector3(0.3891203,0.009879664,0.3613617),Vector3(0.9115101,0.2631342,0.8600425))
        },
        {
            BoundingBox(Vector3(0.1282503,0.009879665,0.06342652),Vector3(0.6403979,0.2631342,0.6312642))
        },
        {
            BoundingBox(Vector3(0.375349,0.00987967,0.1570026),Vector3(0.885626,0.2631342,0.6534348))
        },
        {
            BoundingBox(Vector3(0.1340719,0.7368658,0.1282162),Vector3(0.6297698,0.9901204,0.5640906))
        },
        {
            BoundingBox(Vector3(0.3891203,0.7368658,0.1399575),Vector3(0.9115101,0.9901204,0.6386383))
        },
        {
            BoundingBox(Vector3(0.1282503,0.7368658,0.3687358),Vector3(0.6403979,0.9901204,0.9365735))
        },
        {
            BoundingBox(Vector3(0.375349,0.7368658,0.3465652),Vector3(0.885626,0.9901204,0.8429974))
        }
    };

    // 7段显示器
    std::vector<BoundingBox> sevenSegmentDisplayCollisionBoxes[4] =
    {
        {
            BoundingBox(Vector3(0,0,-2.185569E-08),Vector3(1,1,0.06250002))
        },
        {
            BoundingBox(Vector3(-4.371139E-08,0,0),Vector3(0.06250004,1,1))
        },
        {
            BoundingBox(Vector3(5.960464E-08,0,0.9374999),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0.9375,0,0),Vector3(1,1,1))
        }
    };

    // 半砖
    std::vector<BoundingBox> slabCollisionBoxes[2] = 
    {
        {
            BoundingBox(Vector3(0.0f, 0.0f, 0.0f), Vector3(1.0f, 0.5f, 1.0f))
        },
        {
            BoundingBox(Vector3(0.0f, 0.5f, 0.0f), Vector3(1.0f, 1.0f, 1.0f))
        }
    };

    // 雪
    std::vector<BoundingBox> snowCollisionBoxes =
    {
        BoundingBox(Vector3(0.0f, 0.0f, 0.0f), Vector3(1.0f, 0.125f, 1.0f))
    };

    // 耕地
    std::vector<BoundingBox> soilCollisionBoxes =
    {
        BoundingBox(Vector3(0.0f, 0.0f, 0.0f), Vector3(1.0f, 0.9375f, 1.0f))
    };

    // 木刺陷阱
    std::vector<BoundingBox> spikedPlankCollisionBoxes[12] = {
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,0.5625,1))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,0.1004786,1))
        },
        {
            BoundingBox(Vector3(0,0.4375,0),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0.8995214,0),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0,-2.185569E-08),Vector3(1,1,0.5625))
        },
        {
            BoundingBox(Vector3(0,0,-2.185569E-08),Vector3(1,1,0.1004787))
        },
        {
            BoundingBox(Vector3(-4.371139E-08,0,0),Vector3(0.5625,1,1))
        },
        {
            BoundingBox(Vector3(-4.371139E-08,0,0),Vector3(0.1004787,1,1))
        },
        {
            BoundingBox(Vector3(5.960464E-08,0,0.4374999),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(5.960464E-08,0,0.8995214),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0.4375,0,0),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0.8995214,0,0),Vector3(1,1,1))
        }
    };

    // 楼梯
    std::vector<BoundingBox> stairsCollisionBoxes[24] = {
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,1,0.5)),
            BoundingBox(Vector3(0,0,0.5),Vector3(1,0.5,1))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(0.5,1,1)),
            BoundingBox(Vector3(0.5,0,0),Vector3(1,0.5,1))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,0.5,0.5)),
            BoundingBox(Vector3(0,0,0.5),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(0.5,0.5,1)),
            BoundingBox(Vector3(0.5,0,0),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,1,0.5)),
            BoundingBox(Vector3(0,0.5,0.5),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(0.5,1,1)),
            BoundingBox(Vector3(0.5,0.5,0),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0.5,0),Vector3(1,1,0.5)),
            BoundingBox(Vector3(0,0,0.5),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0.5,0),Vector3(0.5,1,1)),
            BoundingBox(Vector3(0.5,0,0),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,0.5,1)),
            BoundingBox(Vector3(0.5,0.5,0),Vector3(1,1,0.5))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,0.5,1)),
            BoundingBox(Vector3(0,0.5,0),Vector3(0.5,1,0.5))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,0.5,1)),
            BoundingBox(Vector3(0,0.5,0.5),Vector3(0.5,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,0.5,1)),
            BoundingBox(Vector3(0.5,0.5,0.5),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0.5,0),Vector3(1,1,1)),
            BoundingBox(Vector3(0.5,0,0),Vector3(1,0.5,0.5))
        },
        {
            BoundingBox(Vector3(0,0.5,0),Vector3(1,1,1)),
            BoundingBox(Vector3(0,0,0),Vector3(0.5,0.5,0.5))
        },
        {
            BoundingBox(Vector3(0,0.5,0),Vector3(1,1,1)),
            BoundingBox(Vector3(0,0,0.5),Vector3(0.5,0.5,1))
        },
        {
            BoundingBox(Vector3(0,0.5,0),Vector3(1,1,1)),
            BoundingBox(Vector3(0.5,0,0.5),Vector3(1,0.5,1))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,0.5,1)),
            BoundingBox(Vector3(0,0.5,0),Vector3(1,1,0.5)),
            BoundingBox(Vector3(0.5,0.5,0.5),Vector3(1,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,0.5,1)),
            BoundingBox(Vector3(0,0.5,0),Vector3(1,1,0.5)),
            BoundingBox(Vector3(0,0.5,0.5),Vector3(0.5,1,1))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,0.5,1)),
            BoundingBox(Vector3(0,0.5,0.5),Vector3(1,1,1)),
            BoundingBox(Vector3(0,0.5,0),Vector3(0.5,1,0.5))
        },
        {
            BoundingBox(Vector3(0,0,0),Vector3(1,0.5,1)),
            BoundingBox(Vector3(0,0.5,0.5),Vector3(1,1,1)),
            BoundingBox(Vector3(0.5,0.5,0),Vector3(1,1,0.5))
        },
        {
            BoundingBox(Vector3(0,0.5,0),Vector3(1,1,1)),
            BoundingBox(Vector3(0,0,0),Vector3(1,0.5,0.5)),
            BoundingBox(Vector3(0.5,0,0.5),Vector3(1,0.5,1))
        },
        {
            BoundingBox(Vector3(0,0.5,0),Vector3(1,1,1)),
            BoundingBox(Vector3(0,0,0),Vector3(1,0.5,0.5)),
            BoundingBox(Vector3(0,0,0.5),Vector3(0.5,0.5,1))
        },
        {
            BoundingBox(Vector3(0,0.5,0),Vector3(1,1,1)),
            BoundingBox(Vector3(0,0,0.5),Vector3(1,0.5,1)),
            BoundingBox(Vector3(0,0,0),Vector3(0.5,0.5,0.5))
        },
        {
            BoundingBox(Vector3(0,0.5,0),Vector3(1,1,1)),
            BoundingBox(Vector3(0,0,0.5),Vector3(1,0.5,1)),
            BoundingBox(Vector3(0.5,0,0),Vector3(1,0.5,0.5))
        }
    };


    // 海星
    std::vector<BoundingBox> starfishCollisionBoxes[24] =
    {
        {
            BoundingBox(Vector3(0.1131789,0.09523004,0.009999981),Vector3(0.6270038,0.610338,0.06682414))
        },
        {
            BoundingBox(Vector3(0.4308679,0.1554335,0.009999981),Vector3(0.9177221,0.6436362,0.06682414))
        },
        {
            BoundingBox(Vector3(0.1536491,0.3794349,0.009999981),Vector3(0.651936,0.882108,0.06682414))
        },
        {
            BoundingBox(Vector3(0.3717205,0.3845897,0.009999981),Vector3(0.9079161,0.8773733,0.06682414))
        },
        {
            BoundingBox(Vector3(0.009999972,0.09523004,0.3729962),Vector3(0.06682414,0.610338,0.886821))
        },
        {
            BoundingBox(Vector3(0.009999969,0.1554335,0.08227789),Vector3(0.06682414,0.6436362,0.5691321))
        },
        {
            BoundingBox(Vector3(0.009999986,0.3794349,0.348064),Vector3(0.06682414,0.882108,0.846351))
        },
        {
            BoundingBox(Vector3(0.009999975,0.3845897,0.09208387),Vector3(0.06682414,0.8773733,0.6282794))
        },
        {
            BoundingBox(Vector3(0.3729963,0.09523004,0.9331759),Vector3(0.8868212,0.610338,0.99))
        },
        {
            BoundingBox(Vector3(0.08227789,0.1554335,0.9331759),Vector3(0.5691321,0.6436362,0.9900001))
        },
        {
            BoundingBox(Vector3(0.348064,0.3794349,0.9331759),Vector3(0.846351,0.882108,0.99))
        },
        {
            BoundingBox(Vector3(0.0920839,0.3845897,0.9331759),Vector3(0.6282795,0.8773733,0.99))
        },
        {
            BoundingBox(Vector3(0.9331759,0.09523004,0.1131789),Vector3(0.99,0.610338,0.6270038))
        },
        {
            BoundingBox(Vector3(0.9331759,0.1554335,0.4308679),Vector3(0.99,0.6436362,0.9177221))
        },
        {
            BoundingBox(Vector3(0.9331759,0.3794349,0.153649),Vector3(0.99,0.882108,0.651936))
        },
        {
            BoundingBox(Vector3(0.9331759,0.3845897,0.3717205),Vector3(0.99,0.8773733,0.9079161))
        },
        {
            BoundingBox(Vector3(0.1131789,0.009999987,0.3896621),Vector3(0.6270038,0.06682414,0.90477))
        },
        {
            BoundingBox(Vector3(0.4308679,0.009999971,0.3563638),Vector3(0.9177221,0.06682414,0.8445665))
        },
        {
            BoundingBox(Vector3(0.1536491,0.009999971,0.117892),Vector3(0.651936,0.06682414,0.6205651))
        },
        {
            BoundingBox(Vector3(0.3717205,0.00999999,0.1226267),Vector3(0.9079161,0.06682414,0.6154103))
        },
        {
            BoundingBox(Vector3(0.1131789,0.9331759,0.09523007),Vector3(0.6270038,0.99,0.610338))
        },
        {
            BoundingBox(Vector3(0.4308679,0.9331759,0.1554336),Vector3(0.9177221,0.99,0.6436362))
        },
        {
            BoundingBox(Vector3(0.1536491,0.9331759,0.379435),Vector3(0.651936,0.99,0.8821081))
        },
        {
            BoundingBox(Vector3(0.3717205,0.9331759,0.3845897),Vector3(0.9079161,0.99,0.8773733))
        }
    };

    // 开关
    std::vector<BoundingBox> switchCollisionBoxes[12] =
    {
        {
            BoundingBox(Vector3(0.375,0.25,-1.092785E-08),Vector3(0.625,0.75,0.2591946))
        },
        {
            BoundingBox(Vector3(0.375,0.25,-1.092785E-08),Vector3(0.625,0.75,0.2591946))
        },
        {
            BoundingBox(Vector3(-1.639177E-08,0.25,0.375),Vector3(0.2591946,0.75,0.625))
        },
        {
            BoundingBox(Vector3(-1.639177E-08,0.25,0.375),Vector3(0.2591946,0.75,0.625))
        },
        {
            BoundingBox(Vector3(0.3750001,0.25,0.7408053),Vector3(0.6250001,0.75,1))
        },
        {
            BoundingBox(Vector3(0.3750001,0.25,0.7408053),Vector3(0.6250001,0.75,1))
        },
        {
            BoundingBox(Vector3(0.7408053,0.25,0.375),Vector3(1,0.75,0.625))
        },
        {
            BoundingBox(Vector3(0.7408053,0.25,0.375),Vector3(1,0.75,0.625))
        },
        {
            BoundingBox(Vector3(0.375,0,0.25),Vector3(0.625,0.2591946,0.75))
        },
        {
            BoundingBox(Vector3(0.375,0,0.25),Vector3(0.625,0.2591946,0.75))
        },
        {
            BoundingBox(Vector3(0.375,0.7408053,0.25),Vector3(0.625,1,0.75))
        },
        {
            BoundingBox(Vector3(0.375,0.7408053,0.25),Vector3(0.625,1,0.75))
        }
    };

    // 靶
    std::vector<BoundingBox> TargetCollisionBoxes[4] =
    {
        {
            BoundingBox(Vector3(0.0f, 0.0f, 0.0f), Vector3(1.0f, 1.0f, 0.0625f))
        },
        {
            BoundingBox(Vector3(0.0f, 0.0f, 0.0f), Vector3(0.0625f, 1.0f, 1.0f))
        },
        {
            BoundingBox(Vector3(0.0f, 0.0f, 0.9375f), Vector3(1.0f, 1.0f, 1.0f))
        },
        {
            BoundingBox(Vector3(0.9375f, 0.0f, 0.0f), Vector3(1.0f, 1.0f, 1.0f))
        }
    };

    // 温度计
    std::vector<BoundingBox> thermometerCollisionBoxes[4] =
    {
        {
            BoundingBox(Vector3(0.3418088,0.1500008,0.02000001),Vector3(0.6581911,0.8700008,0.08000001))
        },
        {
            BoundingBox(Vector3(0.02,0.1500008,0.3418089),Vector3(0.08000002,0.8700008,0.6581912))
        },
        {
            BoundingBox(Vector3(0.3418089,0.1500008,0.92),Vector3(0.6581911,0.8700008,0.98))
        },
        {
            BoundingBox(Vector3(0.92,0.1500008,0.3418088),Vector3(0.98,0.8700008,0.6581911))
        }
    };

    // 火把
    std::vector<BoundingBox> torchCollisionBoxes[5] =
    {
        {
            BoundingBox(Vector3(0.4292893,0.1217679,-0.09126678),Vector3(0.5707107,0.7442417,0.3565426))
        },
        {
            BoundingBox(Vector3(-0.09126679,0.1217679,0.4292893),Vector3(0.3565426,0.7442417,0.5707107))
        },
        {
            BoundingBox(Vector3(0.4292893,0.1217679,0.6434574),Vector3(0.5707107,0.7442417,1.091267))
        },
        {
            BoundingBox(Vector3(0.6434574,0.1217679,0.4292893),Vector3(1.091267,0.7442417,0.5707107))
        },
        {
            BoundingBox(Vector3(0.4292893,0,0.4292893),Vector3(0.5707107,0.72,0.5707107))
        }
    };

    // 无
    std::vector<BoundingBox> zeroCollisionBoxes =
    {
        BoundingBox(FastVector3::Zero, FastVector3::Zero)
    };

    // 活板门
	std::vector<BoundingBox> trapdoorCollisionBoxes[16] = {
		{
			BoundingBox(Vector3(0.0f, 0.0f, 0.0f), Vector3(1.0f, 0.125f, 1.0f))
		},
		{
			BoundingBox(Vector3(0.0f, 0.0f, 0.0f), Vector3(1.0f, 0.125f, 1.0f))
		},
		{
			BoundingBox(Vector3(0.0f, 0.0f, 0.0f), Vector3(1.0f, 0.125f, 1.0f))
		},
		{
			BoundingBox(Vector3(0.0f, 0.0f, 0.0f), Vector3(1.0f, 0.125f, 1.0f))
		},

		{
			BoundingBox(Vector3(0.0f, 0.0f, 0.0f), Vector3(1.0f, 1.0f, 0.125f))
		},
		{
			BoundingBox(Vector3(0.0f, 0.0f, 0.0f), Vector3(0.125f, 1.0f, 1.0f))
		},
		{
			BoundingBox(Vector3(0.0f, 0.0f, 0.875f), Vector3(1.0f, 1.0f, 1.0f))
		},
		{
			BoundingBox(Vector3(0.875f, 0.0f, 0.0f), Vector3(1.0f, 1.0f, 1.0f))
		},

		{
			BoundingBox(Vector3(0.0f, 0.875f, 0.0f), Vector3(1.0f, 1.0f, 1.0f))
		},
		{
			BoundingBox(Vector3(0.0f, 0.875f, 0.0f), Vector3(1.0f, 1.0f, 1.0f))
		},
		{
			BoundingBox(Vector3(0.0f, 0.875f, 0.0f), Vector3(1.0f, 1.0f, 1.0f))
		},
		{
			BoundingBox(Vector3(0.0f, 0.875f, 0.0f), Vector3(1.0f, 1.0f, 1.0f))
		},

		{
			BoundingBox(Vector3(0.0f, 0.0f, 0.0f), Vector3(1.0f, 1.0f, 0.125f))
		},
		{
			BoundingBox(Vector3(0.0f, 0.0f, 0.0f), Vector3(0.125f, 1.0f, 1.0f))
		},
		{
			BoundingBox(Vector3(0.0f, 0.0f, 0.875f), Vector3(1.0f, 1.0f, 1.0f))
		},
		{
			BoundingBox(Vector3(0.875f, 0.0f, 0.0f), Vector3(1.0f, 1.0f, 1.0f))
		}
	};

    // 导线
    std::vector<BoundingBox> wireCollisionBoxes =
    {
        BoundingBox(Vector3(0,0,0),Vector3(1,1,0.05)),
        BoundingBox(Vector3(0,0,0),Vector3(0.05,1,1)),
        BoundingBox(Vector3(0,0,0.95),Vector3(1,1,1)),
        BoundingBox(Vector3(0.95,0,0),Vector3(1,1,1)),
        BoundingBox(Vector3(0,0,0),Vector3(1,0.05,1)),
        BoundingBox(Vector3(0,0.95,0),Vector3(1,1,1))
    };



















	













    Vector3 postedSignDirections[16] = 
    {
        Vector3(0,0,-1),
        Vector3(-0.7071068,0,-0.7071068),
        Vector3(-1,0,0),
        Vector3(-0.7071068,0,0.7071068),
        Vector3(0,0,1),
        Vector3(0.7071069,0,0.7071066),
        Vector3(1,0,0),
        Vector3(0.7071065,0,-0.707107),
        Vector3(0,0,-1),
        Vector3(-0.7071068,0,-0.7071068),
        Vector3(-1,0,0),
        Vector3(-0.7071068,0,0.7071068),
        Vector3(0,0,1),
        Vector3(0.7071069,0,0.7071066),
        Vector3(1,0,0),
        Vector3(0.7071065,0,-0.707107),
    };

}